/**
* @brief: some io functions
* @author: mysticalwing
* @modify: name            time            brief
*          mysticalwing    2018.11.11      create
*/

#ifndef FILES_IO
#define FILES_IO

#include "type_def.h"

namespace tools
{

str_t get_file_name_from_path(const str_t &file_path);

str_t get_file_format_from_path(const str_t &file_path);

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/**
 * @brie: 获取目录 'root_dir' 下所有文件的路径，忽略文件夹
 */
void get_dir_file_paths(const str_t &_root_dir, s_vec_t &file_paths);

void get_dir_directorise(const str_t &root_dir, s_vec_t &directories);

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/**
 * @brie: 读取训 txt 文件的内容，并且将其内容按行存放在数组中
 */
void read_txt_file(const str_t &file_path, s_vec_t &file_contents);

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void extract_info_from_str_line(const str_t &str_line, i_vec_t &nums, s_vec_t &strs, const str_t &spacer);

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void extract_info_from_txt_file(const std::string &label_txt_file_path,
                                indexes_container_t &indexes,
                                s_vec_t &labels);

void save_txt_file(const str_t &file_path, s_vec_t &file_contents);

} // namespace tools

#endif // !FILES_IO